tg-me.com/cppproglib/5658
Last Update:
🧙♂️ Атрибуты в современном C++
В C++11 и новее появились атрибуты — механизм, о котором многие забывают. Атрибуты позволяют передавать дополнительную информацию компилятору, не меняя семантику кода.
[[nodiscard]] int getValue() { return 42; }
void test() {
getValue(); // Предупреждение: результат функции не используется
}
class [[deprecated("Используйте новый API")]] OldClass {};
[[noreturn]] void throwError() { throw std::runtime_error("Ошибка"); }
// C++20: говорит компилятору, что код с [[likely]] будет выполняться чаще
void process(int* data) {
if (data) [[likely]] {
process_data(data);
} else [[unlikely]] {
handle_null();
}
}
Другие полезные атрибуты: [[maybe_unused]], [[fallthrough]], [[no_unique_address]] (C++20). Они делают код понятнее и помогают избежать ошибок😸
Библиотека C/C++ разработчика #буст
BY Библиотека C/C++ разработчика | cpp, boost, qt
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/cppproglib/5658